/*
	ACDM_window.h

	contains all window (HWND) related function headers for the ACDM

	Author: Aidan Goddard 6/11/13
*/

#ifndef ACDM_WINDOW_H_INCLUDED
#define ACDM_WINDOW_H_INCLUDED

#include"../../klib/headers/ktypes.h"
#include"../../kernel/headers/types.h"

// window allocation & deallocation
HWND WindowCreateStatic(uint64_t PID, char *window_name, int name_count);
void WindowDestroy(HWND hwnd);
void WindowGetForProcess(uint64_t PID, HWND *windows, uint32_t *total_windows);

// window control functions
void WindowGetAllActive(HWND *active_list, uint32_t *active_count);
void WindowHide(HWND hwnd);
void WindowShow(HWND hwnd);
void WindowGiveFocus(HWND hwnd);
void WindowChangeName(HWND hwnd, char *window_name, int name_count);
uint64_t WindowGetStaticBufferAddress(HWND hwnd);
void WindowUpdate(HWND hwnd);

// keyboard functions
uint8_t WindowGetASCIIChar(HWND hwnd);
void WindowClearASCIIChar(HWND hwnd);
void WindowGetKeyState(HWND hwnd, uint8_t *destination_key_state);


#endif
